- eXPressor 1.2 - Finds OEP. (by haggar, 25 Mar 2005)

// Script for OllyScript plugin by SHaG - http://ollyscript.apsvans.com

///////////////////////////////////////////////////////////////////////////

//

// Brilliant "eXPressor v1.2.0.1" OEP finder script - by Haggar :-)

//

// I think that you need more time to click on Pluggins menu in Olly

// to use this script, than scroll a litlle bit in CPU window in Olly

// and find jump that leads to OEP ;-) , but maybe this script will

// be of use to somebody.

//

// Script has two ways (methods) to find OEP (in case that one is not

// working try other one):

// 1. way - uses hardware breakpoint,

// 2. way - calculates address of OEP jmp and puts bp on it.

//

///////////////////////////////////////////////////////////////////////////



start:

ask "Enter 1 or 2 to select search method:"

cmp $RESULT,1

je first_method

cmp $RESULT,2

je second_method

cmp $RESULT,0

je exit

jmp wrong_input





////////////////////////////////////////////////

first_method:

sto

var x

mov x,esp

bphws x,"r"

run

bphwc x

sto

an eip

cmt eip, "This is OEP! Now dump it and rebuild IAT."

msg "OEP found with eXPressor 1.2 script by haggar - thanks for using it ;-)!"

jmp exit

////////////////////////////////////////////////



////////////////////////////////////////////////

second_method:

var x

mov x,eip

add x,45

mov x,[x]

add x,eip

add x,59

bp x

run

bc eip

sto

an eip

cmt eip, "This is OEP! Now dump it and rebuild IAT."

msg "OEP found with eXPressor 1.2 script by haggar - thanks for using it ;-)!"

jmp exit

////////////////////////////////////////////////



////////////////////////////////////////////////

wrong_input:

msgyn "Wrong input :-( ! Do you want to try again?"

cmp $RESULT,1

je start

ret

////////////////////////////////////////////////





///////////////

exit:

ret

///////////////



// [BACK] 